Tarea final Diplomado

Diplomado en Análisis de datos con R para la Acuicultura.

Roberto Teran

01 July 2022

INTRODUCCIÓN

Tradicionalmente la acuicultura vieen trabajando con modelos de crecimiento que solo incorporan una variable que es mas o menos conocida y que por calentamiento goblar viene en aumento en los ultimos años, pero siempre hubo una variable que hizo ruido pero que no estaba siendo incluida en el modelo de crecimiento, esta variable es el oxigeno disuelto, el cual afecta importantemente los porcesos productivos de engorda de salmones castigando los crecimientos si es que este parametro se mantenia en bajos rangos incluso generando mortalidades asociadas cuando es muy baja su concentracion. a continuacion trataremos de confirmar la estrecah relacion que existe entre el sgr y el o2.

Exploracion de datos ambientales y crecimiento en centro de cultivo de la XI region, sector Huaitecas.

##       sem           sgr               o2              temp      
##  Min.   :  1   Min.   :0.1600   Min.   : 5.398   Min.   : 9.60  
##  1st Qu.:114   1st Qu.:0.5400   1st Qu.: 7.548   1st Qu.:10.51  
##  Median :227   Median :0.7700   Median : 8.320   Median :11.47  
##  Mean   :227   Mean   :0.8765   Mean   : 8.030   Mean   :11.48  
##  3rd Qu.:340   3rd Qu.:1.1600   3rd Qu.: 8.653   3rd Qu.:12.36  
##  Max.   :453   Max.   :2.5000   Max.   :10.974   Max.   :13.33
rt$sem <- as.factor(rt$sem)
summary (rt)
##       sem           sgr               o2              temp      
##  1      :  1   Min.   :0.1600   Min.   : 5.398   Min.   : 9.60  
##  2      :  1   1st Qu.:0.5400   1st Qu.: 7.548   1st Qu.:10.51  
##  3      :  1   Median :0.7700   Median : 8.320   Median :11.47  
##  4      :  1   Mean   :0.8765   Mean   : 8.030   Mean   :11.48  
##  5      :  1   3rd Qu.:1.1600   3rd Qu.: 8.653   3rd Qu.:12.36  
##  6      :  1   Max.   :2.5000   Max.   :10.974   Max.   :13.33  
##  (Other):447

#Limpieza de datos. Permite comprobar si hay perdida de datos en el marco de datos.#

## Warning: Unknown or uninitialised column: `arguments`.
## Unknown or uninitialised column: `arguments`.

se puede apreciar que no hay falta de datos

Graficas incluidas

Para data revisada se realiza y se busca la mejor correlacion entre las variables

al obtener una correlacion mas baja mediante Pearson intentaremos mediante Spearman

P_cor <-cor.test(x=rt$sgr , y=rt$o2 , method = "pearson", conf.level = 0.95)
pander::pander(P_cor, caption = "Prueba de hipótesis para r entre Consumo bajo 20% de centros con mayores consumos y FCRc.")
Prueba de hipótesis para r entre Consumo bajo 20% de centros con mayores consumos y FCRc.
Test statistic df P value Alternative hypothesis cor
13.06 451 2.875e-33 * * * two.sided 0.5237

Buscamos relacion grafica

ggplot(rt, aes(x=sgr, y=o2)) + 
  geom_point() + theme_light()

ggplot(rt, aes(x=sem, y=o2)) + 
  geom_point() + theme_light()

ggplot(rt, aes(x=sgr, y=temp)) + 
  geom_point() + theme_light()

Aun no puede darse una respuesta clara de cual podria ser la mejor correlacion

##Muestre el efecto de las variables independientes con respecto a la variable dependiente.

## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

La variable Sgr por lo que se puede ver es que depende claramente de O2 y temperatura .

##obtendremos las estimaciones de los parametros estadisticos##

## 
## Call:
## lm(formula = sgr ~ o2, data = rt)
## 
## Coefficients:
## (Intercept)           o2  
##     -1.2128       0.2602

En la salida anterior se observan los valores estimados de ??0 y ??1 pero no aparece la estimacion de ?? Para obtener una tabla de resumen con detalles del modelo ajustado, se usa la funcion generica summary

## 
## Call:
## lm(formula = sgr ~ o2, data = rt)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.20260 -0.24981 -0.07131  0.16356  1.50738 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.21280    0.16107   -7.53  2.8e-13 ***
## o2           0.26020    0.01993   13.05  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3881 on 451 degrees of freedom
## Multiple R-squared:  0.2743, Adjusted R-squared:  0.2727 
## F-statistic: 170.4 on 1 and 451 DF,  p-value: < 2.2e-16

Para incluir la recta de regresion que representa el modelo ajustado anterior…

la regresion lineal no se ajusta de buena manera a la nube de datos

utilizaremos regresion multiple

a medida que aumenta la temperatura, aumenta el SGR y en condiciones de mayor o2

## 
## Attaching package: 'plotly'
## The following object is masked from 'package:MASS':
## 
##     select
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
## No scatter3d mode specifed:
##   Setting the mode to markers
##   Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode

la grafica anterior confirma los aprecia anteriormente, el color mas claro muestra los puntos mas optimos.

MOdelo 1

#basandonos en el modelo 3d, la expresion que se ajusta es:

## 
## Call:
## lm(formula = sgr ~ o2 + temp, data = rt)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.27840 -0.24930 -0.08086  0.18735  1.48631 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.73268    0.38872  -4.457 1.05e-05 ***
## o2           0.27823    0.02338  11.898  < 2e-16 ***
## temp         0.03266    0.02223   1.469    0.143    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3876 on 450 degrees of freedom
## Multiple R-squared:  0.2777, Adjusted R-squared:  0.2745 
## F-statistic: 86.52 on 2 and 450 DF,  p-value: < 2.2e-16

Para incluir el plano de regresion que representa el modelo ajustado anterior

Se crea el grafico 3d y se guarda en un objeto, por ejemplo mi_3d

podemos ver que en la grafica 3D la regresion se ajusta de mejor manera los a ambas variables una dependeiente de la otra. haca ya llevamos a un plano la regresion mostrando la mejor concordancia entre el O2 y el Sgr.

##¿Que hipotesis contrasta la prueba de Kruskal-Wallis?

Ho: la variable respuesta es la misma en todas las variables valoradas

Ha: la variable respuesta es mayor en ciertos niveles.

kruskal.test(rt$sgr, rt$temp)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  rt$sgr and rt$temp
## Kruskal-Wallis chi-squared = 424.44, df = 384, p-value = 0.07565

Indica cual es el estadistico de contraste, los grados de libertad, el p-valor correspondiente y cual seria el valor critico que definiria las regiones de aceptacion y rechazo con un nivel de significacion alfa = 0.1.

qchisq(0.07, 2-1, lower.tail = F)#Valor teorico
## [1] 3.28302

#chi cuadrado es 436 >3.283 se acepta la Ho.

kruskal.test(log(rt$sgr), rt$temp) #log para reducir escala de dispersión
## 
##  Kruskal-Wallis rank sum test
## 
## data:  log(rt$sgr) and rt$temp
## Kruskal-Wallis chi-squared = 424.44, df = 384, p-value = 0.07565

Los resultados son exactamente los mismos. No se producen variaciones porque el test de Kruskal-Wallis trabaja sobre rangos, es decir, sobre ordenaciones de los valores de la variable en cada uno de los grupos. Aunque realicemos una transformacion logaritmica, el orden entre los valores de la variable se mantiene y por lo tanto la transformacion no afecta a los resultados del test.

Nuevos test

se realizan nuevos test para analizar si poseemos una autocorrelacion en los residuos de la regresion.

## 
##  Durbin-Watson test
## 
## data:  lm(sgr ~ o2 + temp, data = rt)
## DW = 0.54386, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is not 0
## 
##  studentized Breusch-Pagan test
## 
## data:  lm(sgr ~ o2 + temp, data = rt)
## BP = 62.624, df = 2, p-value = 2.52e-14
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(mod)
## W = 0.95352, p-value = 9.6e-11

como vemos todos los P-value son bajos a 1 por lo cual se rechaza la hipotesis de autocorrelacion del primer modelo por lo cual generaremos nuevas iteraciones. por ende se concluye que lo anterior no se distribuye de manera normal. a lo anterior recurrieremos a modelos multivariables

Modelo 2

Provaremos una nueva variente del modelo (mod)

SGR = o2 ~ temp + (1| semana)

mod2<- lmer(sgr ~ o2 + (1 | temp), data = rt)
summary(mod2)
## Linear mixed model fit by REML ['lmerMod']
## Formula: sgr ~ o2 + (1 | temp)
##    Data: rt
## 
## REML criterion at convergence: 436
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.0078 -0.6109 -0.1711  0.4108  3.4975 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  temp     (Intercept) 0.02829  0.1682  
##  Residual             0.12267  0.3502  
## Number of obs: 453, groups:  temp, 385
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept) -1.12598    0.16784  -6.709
## o2           0.24994    0.02068  12.086
## 
## Correlation of Fixed Effects:
##    (Intr)
## o2 -0.994
tab_model(mod2, show.se = TRUE, show.aic=TRUE)
  sgr
Predictors Estimates std. Error CI p
(Intercept) -1.13 0.17 -1.46 – -0.80 <0.001
o2 0.25 0.02 0.21 – 0.29 <0.001
Random Effects
σ2 0.12
τ00 temp 0.03
ICC 0.19
N temp 385
Observations 453
Marginal R2 / Conditional R2 0.258 / 0.397
AIC 443.966

Conclusiones

Se aprecia que hay una realcion estrecha ademas de la temperatura en el crecimiento de los peces gatillado por las fluctuaciones del O2

Modelo 3

Cambiaremos el orden las las variables para cotejar el mejor ajuste.

mod3<- lmer(sgr ~ temp + (1 | o2), data = rt)
summary(mod3)
## Linear mixed model fit by REML ['lmerMod']
## Formula: sgr ~ temp + (1 | o2)
##    Data: rt
## 
## REML criterion at convergence: 547
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -1.6572 -0.4607 -0.2456  0.3722  3.2844 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  o2       (Intercept) 0.08685  0.2947  
##  Residual             0.10998  0.3316  
## Number of obs: 453, groups:  o2, 401
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)  1.94026    0.25220   7.693
## temp        -0.09279    0.02187  -4.242
## 
## Correlation of Fixed Effects:
##      (Intr)
## temp -0.996
tab_model(mod3, show.se = TRUE, show.aic=TRUE)
  sgr
Predictors Estimates std. Error CI p
(Intercept) 1.94 0.25 1.44 – 2.44 <0.001
temp -0.09 0.02 -0.14 – -0.05 <0.001
Random Effects
σ2 0.11
τ00 o2 0.09
ICC 0.44
N o2 401
Observations 453
Marginal R2 / Conditional R2 0.039 / 0.463
AIC 554.996

Conclusiones

El modelo al plantearse de que la temperatura tiene directa realcion con el SGr impulsa a asumir que el O2 tambien se ve influenciado por lo anterior. A pesar de tener conclusiones parciales de la realcion que existe entre O2, sgr y temperatura el proyecto seguira avanzando para buscar conclusiones mas solidas y estrechas entre las variables.